from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker
from sqlalchemy.orm import declarative_base
import os

# 1、异步数据库连接  URL
SQLALCHEMY_DATABASE_URL = os.getenv("DATABASE_URL","mysql+aiomysql://root:123456@localhost:3306/magic_notes_db")

# 2 创建异步数据库引擎
# 通过数据库URL创建异步引擎，用于处理异步数据库操作
# echo=True表示开启SQL语句日志输出，便于调试
engine = create_async_engine(
    SQLALCHEMY_DATABASE_URL,
    echo=True,
)

# 3 创建异步数据库会话
# 创建异步会话工厂，用于生成数据库会话对象
# autocommit=False表示不自动提交事务，需要手动提交
# autoflush=False表示不自动刷新，需要手动调用flush()方法
AsyncSessionLocal = async_sessionmaker(
    engine,
    autocommit=False,
    autoflush=False,
)

# 创建ORM模型的基类，所有数据模型都需要继承此类
Base = declarative_base()
